Pourquoi faire le choix de réaliser ses graphiques sous R ?
Dec 2019
Pourquoi faire le choix de réaliser ses graphiques sous R ?
Les 4 systèmes graphiques en R
Quelle stratégie adopter pour représenter mes données ?
Cartographie
Construction de graphiques animés
Construction d’applications
Comment être efficace - construire mon graphique
Nous allons aborder la réalisation de graphique en 4 étapes :
Connaître les 4 systèmes graphiques
Les options de personnalisations
Les règles sémiologie graphique / bonnes pratiques
Utiliser des outils d’autres disciplines pour être plus efficace
Les 4 systèmes graphiques sous R
Base graphics : le plus simple à apprendreGrid graphics : ensemble de modules puissants pour construire d’autres outilsLattice graphics : système à caractère général basé sur Grid. logique trellis graphics (Cleveland)ggplot2 : basé sur “grammar of graphics”Base graphics
graphics::plot(ChickWeight)
graphics::plot(ChickWeight$weight)
Sunflowerplotboxplotmosaic plotLes graphiques R de base peuvent être construits grâce à deux types de fonctions :
fonctions de haut niveau
plot()fonctions de bas niveau
lines()text()points()par()par(mfrow = c(1,2))
Affichage :
par()par(mfrow = c(2, 3))
bagplot() : exemples
Grid graphics
Grid graphicsLe package lattice
latticesource : Datacamp
latticelattice" - use high-level functions such as histogram(), xyplot() …
- optional arguments for common variants
- But it’s not possible to anticipate all variants
- Need some system to design next visualizations
"
Deepayan Sarkar
lattice~ x : premier argumentdata : le dataset qui contient les variableslatticeOn retrouve les graphiques usuels de Base
histogram( ~ wt, data = mtcars)
(nb : percent et pas freq)
Le package permet de créer des objets qui pourront être appelés.
tplot <- densityplot(~rate.male + rate.female,
data = USCancerRates, outer = T)
class(tplot)
## [1] "trellis"
tplot <- densityplot(~rate.male + rate.female | state,
data = USCancerRates, outer = T)
head(summary(tplot)[[2]])
##
## state rate.male rate.female
## Alabama 67 67
## Alaska 20 20
## Arizona 15 15
## Arkansas 75 75
## California 57 57
## Colorado 56 56
Il faut voir cet objet comme un array
tplot <- densityplot(~rate.male + rate.female | state,
data = USCancerRates, outer = T)
dim(tplot)
## [1] 49 2
On peut ensuite mettre à jour un argument grâce à la fonction update()
Pour réliser des visualisations, pas possible d’anticiper toutes les variantes. Par exemple, histogramme + kernel density en même temps
basedata(USCancerRates, package = "latticeExtra") log.r.m <- log(USCancerRates$rate.male) hist(log.r.m, freq = F) lines(density(log.r.m,na.rm = T), col = "green")
latticeIl faut créer une fonction panel
panel.histdens <- function(x, ...){
panel.histogram(...)
panel.lines(density(x,na.rm = T))
}
latticepanel.histdens <- function(x, ...){
panel.histogram(x,...)
panel.lines(density(x,na.rm = T))
}
histogram(~rate.female + rate.male, USCancerRates,
type = "density", layout = c(1,2),
panel = panel.histdens)
Le package ggplot2
ggplot2ggplot2tidyverseggplot2ggplot2 ?qplot() et ggplot()ggplot2 ?library(ggplot2) ggplot(data = mtcars)+ geom_point(mapping = aes(x = mpg, y = hp))
Le package esquisse
install.packages("esquisse")
library(esquisse)
corrplotlibrary(corrplot)
correlation <- cor(mtcars) # Fonction du package corrplot corrplot(correlation,method = "ellipse")
Règles de datavisualisation
ROpenSciUn article intéressant : Interview C.Bontemps
Des graphiques interactifs : une introduction
plotlyPermet de rendre un graphique ggplot2 interactif.
Peut être utilisé seul pour des options de customisation plus avancée
plotlylibrary(dplyr) mtcars %>% ggplot(aes(x = mpg, y = disp, color = factor(cyl))) + geom_point()
plotlyTrouver rapidement des outils de personnalisation
(https://neocarto.hypotheses.org/1458)
(https://coolors.co/) générateur de palette de couleur (http://chir.ag/projects/name-that-color/#ED616A) nommer la couleur
(http://colorbrewer2.org/#type=sequential&scheme=BuGn&n=3) site ColorBrewer
(https://flatuicolors.com/) Choisir une couleur
Récapitulatif
ggplot2base R graphics et lattice